package com.wing.product.model.response;

import com.wing.mybatis.common.BaseEntity;
import com.wing.product.model.entity.WarehouseMaterialRequisitionRecordDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description="领料记录表")
@Data
@EqualsAndHashCode(callSuper=true)
public class WarehouseMaterialRequisitionRecordVO extends BaseEntity<WarehouseMaterialRequisitionRecordVO> {

    @Schema(description="领料记录编号")
    private String requisitionRecordCode;

    @Schema(description="生产计划id")
    private Long productionPlanId;

    @Schema(description="生产计划编号")
    private String productionPlanCode;

    @Schema(description="生产计划备注")
    private String productionPlanRemark;

    @Schema(description="制令单id")
    private Long productionSchedulingPlanDetailId;

    @Schema(description="制令单编号")
    private String productionSchedulingPlanDetailCode;

    @Schema(description="所属生产订单id")
    private Long productionOrderId;

    @Schema(description="所属生产订单编号")
    private String productionOrderNumber;

    @Schema(description="生产产品id")
    private Long productId;

    @Schema(description="生产产品名称")
    private String productName;

    @Schema(description="产品规格码")
    private String productSpecCode;

    @Schema(description="生产客户产品料号")
    private String customerProductCode;

    @Schema(description="领料料号数")
    private String materialNumber;

    @Schema(description="领料数量")
    private BigDecimal requisitionQuantity;

    @Schema(description="生产线id")
    private Long productionLineId;

    @Schema(description="生产线名称")
    private String productionLineName;

    @Schema(description="车间id")
    private Long workshopId;

    @Schema(description="车间名称")
    private String workshopName;

    @Schema(description="状态1.生产中，2.生产完成")
    private String status;

    @Schema(description="仓库名称")
    private String warehouseName;

    @Schema(description="仓库id")
    private Long warehouseId;

    @Schema(description="计划产量")
    private BigDecimal plannedQuantity;

    @Schema(description="计划生产时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime plannedProductionTime;

    @Schema(description="计划交货时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deliveryTime;

    @Schema(description="厚度/壁厚/直径")
    private String diameter;

    @Schema(description="宽度/外径")
    private String warehouseWidth;

    @Schema(description="长度")
    private String warehouseLength;

    @Schema(description="品种名称")
    private String productVarietyName;

    @Schema(description="牌号名称")
    private String productBrandName;

    @Schema(description="生产商名称")
    private String productProducerName;

    @Schema(description="生产商名称")
    private String productMarkName;

    @Schema(description="出入库类型id")
    private Long inventoryTypeId;

    @Schema(description="出入库类型名称")
    private String inventoryTypeName;

    @Schema(description="客户名称")
    private String customerName;

    @Schema(description="领料记录明细")
    private List<WarehouseMaterialRequisitionRecordDetail> warehouseMaterialRequisitionRecordDetailList;

    private List<WarehouseMaterialRequisitionRecordDetailVO> warehouseMaterialRequisitionRecordDetails;

}
